Flexible API framework

ABSTRACT

Embodiments provide approaches to selectively integrate with various providers based on reliability factors, user preferences, and/or other criteria. For example, a user in a location where an on-demand provider is available may attempt to utilize services provided by the on-demand provider in a different location where the on-demand provider has limited or no services available, but where one or more other on-demand providers may be available. The user may attempt to access services provided by the on-demand provider using an application provided by the on-demand provider. However, in the situation where the user is in the location where services provided by the on-demand provider are not available, the user would have to secure other means of accessing those services. In such a situation the user may be able to utilize the application to request services with at least one partner on-demand provider. This can include, for example, enabling the user to use the application to access such services, and thus maintain a familiar front-end user experience, while on the backend a flexible application program interface (API) framework is utilized to enable requests to partner on-demand providers who can satisfy requests on behalf of the on-demand provider.

BACKGROUND

Users are increasingly utilizing electronic devices to perform varioustypes of tasks. For example, an on-demand service matching system canprovide a platform to enable users to request an on-demand servicethrough use of computing devices. Service providers can operatecomputing devices to communicate with the on-demand service matchingsystem and receive requests to perform the on-demand services forrequesting users. The on-demand service matching system can performvarious operations to determine which service providers to assign towhich requesting users based on location information received from thecomputing devices operated by both services providers and requestingusers, respectively. However, in certain situations, a user may belocated in a region where service providers for a particular on-demandservice are not available to fulfill requests. The lack of the availableservice may cause the user to use a different (e.g., partner,competitor, etc.) on-demand provider that has service in that region. Assuch, the user may switch on-demand providers or at least split use ofservices based on availability, cost, and/or other factors. This canresult in fewer users using the on-demand service matching system, whichmay result in lost profits, as well as inefficient resource usage as theresources of the on-demand service are utilized for only certain requestlocations. Additionally, as such services have become more prevalent,and more users are interacting with these services on a global level, itmay be desirable to determine approaches to leverage the network ofpartner or other on-demand providers to provide a unified service tousers.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIGS. 1A and 1B illustrate an example where a user is attempting torequest an on-demand service in accordance with various embodiments;

FIG. 2 illustrates an example system for incorporating services providedby one or more on-demand providers in accordance with variousembodiments;

FIGS. 3A, 3B, and 3C illustrate example interfaces in accordance withvarious embodiments;

FIG. 4 illustrates an example environment for utilizing a flexible APIframework in accordance with various embodiments;

FIG. 5 illustrates an example process utilizing a flexible API frameworkin accordance with various embodiments;

FIG. 6 illustrates an example process utilizing a flexible API frameworkto access aspects of partner services in accordance with variousembodiments;

FIG. 7 illustrates an example requestor/provider management environment,in accordance with various embodiments;

FIG. 8 illustrates an example data collection and application managementsystem, in accordance with various embodiments; and

FIG. 9 illustrates an example computer system, in accordance withvarious embodiments.

DETAILED DESCRIPTION

In the following description, various embodiments will be described. Forpurposes of explanation, specific configurations and details are setforth in order to provide a thorough understanding of the embodiments.However, it will also be apparent to one skilled in the art that theembodiments may be practiced without the specific details. Furthermore,well-known features may be omitted or simplified in order not to obscurethe embodiment being described.

Systems and methods in accordance with various embodiments of thepresent disclosure overcome one or more of the above-referenced andother deficiencies in conventional approaches to access servicesprovided by one or more service providers. In particular, variousembodiments provide for selectively integrating with various serviceproviders (e.g. on-demand service providers) based on reliabilityfactors, security concerns, user preferences, and/or other criteria. Forexample, a user in a first location where a first on-demand provider isavailable may attempt to utilize services provided by the firston-demand provider in a second location where the first on-demandprovider has limited or no services available, but where one or moreother on-demand providers may be available. In this example, the usermay attempt to access services provided by the first on-demand providerusing an application provided by the first on-demand provider. However,in the situation where the user is in the second location—where servicesprovided by the first on-demand provider are not available, the userwould have to secure other means of accessing those services. Inaccordance with various embodiments, the user may be able to utilize theapplication to request services with one or more partner on-demandproviders. This can include, for example, enabling the user to use theapplication to access such services, and thus maintain a familiarfront-end user experience, while on the backend a flexible applicationprogram interface (API) framework is utilized to enable requests topartner on-demand providers who can satisfy requests on the firston-demand services behalf.

For example, in accordance with various embodiments, when it isdetermined that the application is active, geographic locationinformation associated with the user's computing device can bedetermined and provided to a management system or other on-demandservice matching system associated with the first on-demand service. Thegeographic location information can be used to determine a geographicregion. In an embodiment, in the situation where the first on-demandprovider does not provide service in that geographic region, any requestsubmitted through the application can be fulfilled by a partneron-demand provider. This can include, for example, determining at leastone partner on-demand provider associated with the geographic region.The management system can communicate using APIs associated with thepartner on-demand provider. In various embodiments, the managementsystem can store mapping information that maps these requests to theappropriate partner's API. As will be described further herein, themapping can be based on a set of rules, where some aspects of a requestmay be fulfilled by the partner on-demand provider and other aspects ofthe request may be fulfilled by the first on-demand provider or otherpartner on-demand provider. For example, the management system mayselect and provide requests to partner on-demand providers based thelocation, security concerns, and status of service providers near arequest location. Accordingly, the management system may monitor systemresources and control efficient resource allocation based ondemand-matching between requestors and partner on-demand providersdistributed through a geographic area. In response to the request,partner information can be obtained. The partner information can includesufficient data to determine partner services, availability of partnerproviders, among other such information. Thereafter, a request can besubmitted to the partner on-demand service requesting a service such asa ride, monitor the status of a matched ride, pay for a ride, monitorpast rides, perform any other requestor-oriented services related to theon-demand provider, and/or obtain any other requestor-orientedinformation from the on-demand provider and/or partner on-demandprovider.

Various other such optimizations can be utilized as well within thescope of the various embodiments as would be apparent to one of ordinaryskill in the art in light of the teachings and suggestions containedherein.

FIG. 1A illustrates an example 100 where a user is attempting to requesta service provided by an on-demand provider in accordance with variousembodiments. Although a portable computing device (e.g., a smart phoneor tablet computer) is shown, it should be understood that various othertypes of electronic devices that are capable of determining andprocessing input can be used as well in accordance with variousembodiments. These devices can include, for example, notebook computers,personal data assistants, e-book readers, cellular phones, video gamingconsoles or controllers, smart televisions, set top boxes, a wearablecomputer (e.g., a smart watch or glasses), and portable media players,among others.

In this example, the user (e.g., a requestor) may have a computingdevice (e.g., a requestor computing device) that may be used to requestservices (e.g., a ride or transportation service, a delivery service,etc.) provided by a provider such as an on-demand provider. When arequest is received at the on-demand provider, the on-demand providermay be able to contact available service providers and match the requestwith an available service provider. For example, the request can bereceived at a management system associated with the on-demand provider.A transport subsystem of the management system can be configured tocommunicate with both requestor computing devices and provider computingdevices. The “requestor” may use an application such as a transportmatching application executing on a requestor computing device torequest transportation from a specified pick-up location. The requestmay be transmitted over a communication network to the managementsystem. The transport subsystem may identify available providers thatare registered with the management system through an application on arespective provider computing device. The management system may send therequest to a provider communication device and the provider may acceptthe request through the provider communication device. The provider andthe requestor may be matched and both parties may receive matchinformation associated with the other respective party including name,request location, destination location, respective computing devicelocation, rating, past ride history, and/or any other relevantinformation for facilitating the match and/or service being provided.The transport subsystem can monitor the location of the respectiverequestor computing device and provider computing device and sendlocation information to the respective other device. Thus, as theprovider computing device gets closer to the request location, thetransport subsystem may monitor the location of the provider computingdevice and may send the location of the requestor computing device tothe provider computing device. As such, the provider computing devicemay receive the location of the requestor computing device to allow theprovider to identify the specific location of the requestor. Thereafter,the provider can pick-up and satisfy the transport request.

However, in certain situations, a user may be located in a region whereservice providers for a particular service offered by the on-demandprovider are not available to fulfill requests. For example, the usermay be in a region where the on-demand provider provides limited or noservice. In such a situation, the user may decide to use a differenton-demand provider (i.e., a competitor on-demand provider.) As such, theuser may switch on-demand providers or at least split use of providersbased on availability, cost, and/or other such factors. Additionally, incertain embodiments, the user may desire a service not provided by theon-demand provider at the time of the request. For example, the user mayrequire a vehicle of a certain size, make, style, etc. that is notcurrently available.

Accordingly, embodiments provide for selectively integrating withvarious partner on-demand providers based on reliability factors,security concerns, user preferences, and/or other criteria to fulfillrequest that otherwise may not have been satisfied. For example, when itis determined that the application is active, location informationassociated with a location of the requestor computing device can be usedto determine whether the user is in a region where the on-demandprovider has limited or no service offerings. In such a situation,various embodiments provide for selectively integrating with variouspartner on-demand providers based on reliability factors, securityconcerns, user preferences, and/or other criteria. As shown in FIG. 1A,an interface that includes a welcome page 102 is displayed, as the useris attempting to use the application in a region where service islimited or not available. In this example, instead of the user having toaccess a different on-demand provider's service offerings, the user canbe provided access to services provided by one or more partner on-demandproviders via the application. For example, as shown in FIG. 1B, theuser is able to request services 126 via the application, where theservices can be offered by one or more partner on-demand providers. Inthis example, the user can request a carpool, an autonomous vehicle, ora large vehicle service.

Incorporating services provided by partner on-demand providers includesutilizing a flexible application program interface (API) to selectivelymake requests to partner on-demand providers. FIG. 2 illustrates anexample system 200 for incorporating services provided by one or moreon-demand providers in accordance with various embodiments. In thisexample, management system 201 may identify and facilitate requestmatching from a requestor associated with a requestor computing device202 with available service providers (“providers”) associated withprovider computing devices and a partner on-demand provider. Inaccordance with various embodiments and as described herein, a partneron-demand provider also referred to as a partner provider, partner,and/or service provider, can be any entity directly or indirectlyproviding service and/or resources to provide a service such as atransport service or other such service. One example provider includesan entity that enables access through, e.g., software to make a requestwith one or more services providers to view information associated withone or more service providers and/or utilize services provided by theservices providers. Such a provider may utilize API requests tofacilitate or otherwise interact with various other service providers toaggregate those services. Another example includes an entity thatprovides one or more resources, e.g., vehicles, software, among othersuch resources to fulfill a request such as a transport request. Exampleservices include a transport service, a delivery service (e.g., a foodand/or beverage delivery service), a personal care service (e.g., mentaland physical therapy service, grooming service, fitness service, etc.),a daycare service, among other such services.

The management system 201 may include roaming system 204 that includes arequestor interface 206, a partner interface 208, a region servicemodule 212, and a roaming service module 214. The management system 201may also include a requestor information data store 216, a partnerinformation data store 218, a region data store 220, an API mappinginformation/rule data store 222, and a transport data store 224. Thedata stores can be accessed by any of the modules of the roaming system204 to obtain information in order to perform the functionality of thecorresponding module. The management system 201 can be configured tocommunicate with at least one requestor computing device 202, at leastpartner on-demand provider (226,228,230) and associated partner serviceproviders (not shown), and service providers (not shown) associated withthe management system. Although the management system 201 is shown in asingle system, the management system 201 may be hosted on multipleserver computers and/or distributed across multiple systems.Additionally, the modules may be performed by any number of differentcomputers and/or systems. Thus, the modules may be separated intomultiple services and/or over multiple different systems to perform thefunctionality described herein.

It should be noted that although embodiments may be described inreference to transportation (“transport”) requests, any number ofdifferent services may be provided through similar requests and matchingfunctionality. Accordingly, embodiments are not limited to the matchingof transport requests and one of ordinary skill would recognize thatembodiments could be implemented for any number of different servicesthat have requestors and providers being matched through a network ofconnected computing devices.

The requestor interface 206 may include any software and/or hardwarecomponents configured to send and receive communications and/or otherinformation between the management system 201 and a plurality ofrequestor computing devices. The requestor interface 206 may beconfigured to facilitate communication between the management system 201and respective requestor applications operating on each of a pluralityof requestor computing devices. The requestor interface 206 may beconfigured to periodically receive transport requests, locationinformation, a geographic request location (also referred to as a“pick-up” location), requestor status information, a location of therequestor computing device, and/or any other relevant information fromthe requestor computing device 202 when the requestor application 232 isactive on the requestor computing device 202. The transport request mayinclude a requestor identifier, location information for the requestorcomputing device 202, a pick-up location for the request, one or moredestination locations, a pick-up time, and/or any other suitableinformation associated with providing a service to a requestor. Therequest may be sent in a single message or may include a series ofmessages. Additionally, the requestor interface 206 may be configured tosend transport match messages, location information for partner andother provider computing devices, partner and provider information,travel routes, pick-up estimates, traffic information, requestorupdates/notifications, and/or any other relevant information to therequestor application 232 of the requestor computing device 202. Therequestor interface 206 may update a requestor information data store216 with requestor information received and/or sent to the requestor, astatus of the requestor, a requestor computing device location, and/orany other relevant information.

The roaming system 204 may receive one or more requests from requestorapplication 232 and send the request(s) to one of the partner on-demandproviders. For example, when request application 232 is active,geographic location information obtained from location module 234 andassociated with the requestor computing device 202 can be provided torequestor interface 206. Region service 212 can use the geographiclocation information to determine a geographic region associated withthe geographic location information. For example, the geographiclocation information can correspond to a global address, such as alatitude and longitude angels. Latitude and longitude angles canuniquely define points on a sphere and together, the angles comprise acoordinate scheme that can locate or identify geographic positions onthe surfaces of planets such as the earth. The geographic locationinformation can be compared to geographic location data stored in regiondata store 220 to determine a geographic region. Also stored in regiondata store 220 can be partner on-demand providers associated withregions. In accordance with various embodiments, partnerships betweenthe management system 201 and on-demand providers can be established inany one of a number of ways, where partner on-demand providers providesimilar and/or different services. The requestor application can beutilized to access services offered by the partner on-demand providers.

Region service module 212 can determine at least one partner on-demandprovider associated with a geographic region. For example, one or morepartner on-demand providers can be displayed on display screen 236 ofthe requestor computing service. A selection or other indication of oneof the partner on-demand providers can be received. In another example,requestor data store 216 can be accessed to determine whether therequestor application is associated with user preferences indicating apreferred partner on-demand provider. Once an indication of one or morepreferred partner on-demand providers is received, a determination canbe made whether terms of service have been accepted for the partneron-demand provider for a user account associated with the requestorapplication 232. In the situation where the terms of service have notbeen accepted, the terms of service can be displayed on display screen236 of the request computing device 202. If more than one partneron-demand provider is selected, the terms of service of those providersis provided for acceptance in turn.

Once the terms of service have been accepted, or determined to havepreviously been accepted, the requestor application can display arequest interface. The transport request interface can be configured tofacilitate communications with the management system 201 and interfacewith the user (i.e., requestor) of the requestor computing device 202.The transport request interface may allow a user to request a servicesuch as a ride, monitor the status of a matched ride, pay for a ride,monitor past rides, perform any other requestor-oriented servicesrelated to the management system 201, and/or obtain any otherrequestor-oriented information from the management system 201 and/orpartner on-demand providers. In various embodiments, the transportrequest interface can display the services provided by the partneron-demand providers. The requestor computing device 202 may include anydevice that is configured to communicate with the management system 201over one or more communication networks. The requestor computing device202 may comprise a processor, a computer-readable memory, andcommunication hardware and/or software to allow the requestor computingdevice 202 to communicate over the communication networks. For example,a requestor computing device 202 may include a mobile phone, a tablet, asmart watch, a laptop computer, a desktop computer, and/or any othersuitable device having a processor, memory, and communication hardware.

Partner interface 208 may include any software and/or hardwareconfigured to send and receive communications and/or other informationbetween the management system 201 and partner on-demand providers (226,228, 230), each of which may have a plurality of providers (e.g.,partner providers) having respective partner computing devices operableto run a partner application. The partner interface 208 may beconfigured to periodically receive location information of partnercomputing devices, provider partner status information (e.g., active,offline, etc.), and/or any other relevant information from a partnercomputing devices when a partner application is active on the partnercomputing device. Additionally, the partner interface 208 may beconfigured to send service requests, location information of a requestorcomputing device 232, pick-up locations, suggested travel routes,pick-up estimates, traffic information, partner providerupdates/notifications, and/or any other relevant information to anappropriate partner application of a partner computing device. Thepartner interface 208 may update a partner information data store 218with partner information received and/or sent to the partner on-demandproviders and/or partner computing devices, partner provider profileinformation, a status of the partner provider, a partner providercomputing device location, and/or any other relevant information.

A partner provider computing device may include any computing devicethat is configured to communicate with a partner on-demand system and/ormanagement system 201 over one or more communication networks. Thepartner provider computing device may comprise any device that includesa processor, a computer-readable memory, and communication hardwareand/or software to allow the partner provider computing device tocommunicate over the communication networks. For example, a partnerprovider computing device may include a mobile phone, a tablet, a smartwatch, a laptop computer, a desktop computer, and/or any other suitabledevice having a processor, memory, and communication hardware. In someembodiments, the partner provider computing device may include a partnerprovider application that is configured to manage communications withpartner on-demand providers and/or the management system 201. In variousembodiments, the partner provider application may allow a user to accepta transport request, monitor the status of a matched transport request,obtain or generate navigation directions or a mapped route for a matchedtransport request, get paid for a transport request, monitor past rides,perform any other partner provider-oriented services related to themanagement system 201, and/or obtain any other partner provider-orientedinformation from the management system 201.

The roaming service 214 is configured to utilize a flexible APIframework to selectively submit requests to partner on-demand providersbased on a set of rules. For example, an indication that requestorapplication is active can be received. Roaming service 214 can submitone or more requests to an appropriate API of a partner on-demandprovider to request information such as partner services, availabilityof partner providers, among other such information. In this example, APImapping and rule data store 222 can store mapping and rule informationto map requests to the appropriate partner API. The ability toselectively submit requests allows for some aspects of a request to befulfilled by a partner on-demand provider and other aspects of therequest to be fulfilled by another on-demand providers and/or themanagement system 201. For example, while a transport request, locationpick-up, drop-off, route, and pricing may be received and fulfilled by apartner on-demand provider, management system 201 might fulfill billingobligations, estimated time of arrival calculations, among other suchdeterminations.

Roaming service 214 may include a software module that is configured toprocess transport requests, transport responses, and othercommunications between requestors and partner providers of themanagement system 201 to match a requestor and a partner provider for arequested service. For example, the roaming service 214 may beconfigured to access partner data store 218 and API mapping/rule datastore 222 to identify available partner providers for a transportrequest from a requestor by identifying a geographic region associatedwith the pick-up location, determining an appropriate partner on-demandprovider based on the geographic region and any rules to map appropriaterequests one or more appropriate APIs of a partner on-demand provider.The roaming service may provide the transport request to the partnerinterface 208 with the partner API information so that the transportrequest may be sent to one or more available partner providers.

The roaming service 214 may send the transport request and/or theinformation from the transport request to one or more of the availablepartner on-demand providers to determine whether the available providerscan determine whether a partner provider is interested in accepting thetransport request. The available partner providers may receive thetransport request through a partner provider application of the partnerprovider computing device, may evaluate the request, and may accept ordeny the request by providing an input through the partner providerapplication. A transport response message may be sent to the managementsystem 201 indicating whether a ride was accepted and including apartner provider identifier, a location of the partner provider, and/orany other suitable information to allow the management system 201 toprocess the request. Alternatively, the partner provider may ignore therequest and after a predetermined period of time, the request may beconsidered denied and a corresponding transport response message may betransmitted to the management system 201. In some embodiments, noresponse may be sent unless a transport request is accepted and the ridewill be assumed to be denied unless a response is received from thepartner provider.

The roaming service 214 may receive the transport response, evaluatewhether the partner provider accepted or declined the request, and mayeither find additional available partner providers for the request (ifdeclined) or determine the request has been accepted and send matchedtransport information to the requestor computing device 202 and thepartner provider computing device. The matched transport information mayinclude partner provider information, requestor information, the pick-uplocation, the current location of the partner provider computing device,the current location of the requestor computing device, a requestorcommunication identifier, a provider communication identifier, anestimated time of arrival for the provider, and/or any other suitableinformation to allow the requestor and the partner provider to completethe requested service. The roaming service 214 may update the transportdata store with the corresponding matched transport information for thematched ride.

The roaming service 212 may be configured to track the location of thepartner provider computing device and the requestor computing device andprovide location information to each of the respective devices tofacilitate navigating the partner provider computing device to therequestor computing device (or vice versa), providing estimated time ofarrival information, among other such functions. For example, theroaming service 214 may use an appropriate API to request locationinformation for a partner provider. Using the location information, theroaming service can be configured to identify when the partner provideris within a threshold distance to a geographic request location and/orwhen a partner computing device requests a location of a requestorcomputing device and provide the respective location to the partnerprovider computing device. For instance, the roaming service may send arequest to location module 234 in response to a matched ride. Theroaming service 214 may receive a requestor computing device identifier,a partner provider computing device identifier, and a pick-up locationassociated with a matched ride and may track the progress of the partnerprovider computing device in relation to the request location. Forexample, the roaming service 214 may submit an appropriate API requestto obtain and monitor the location of the partner provider computingdevice from and store such information in transport data store 224. Oncethe partner provider computing device is within a threshold distance ofthe request location, the roaming service 214 may send the location ofthe requestor computing device 202 to the partner provider computingdevice. The partner provider computing device may then calculate aproximity vector between the location of the partner provider computingdevice and the requestor computing device 232 to locate the exactlocation of the requestor computing device 202. Similarly, the roamingservice 214 may identify and monitor the location of the partnerprovider computing device and send the location to the requestorcomputing device 232 upon being within a threshold distance to thepartner provider computing device. In some embodiments, the roamingservice 214 may periodically and/or upon another condition being met,send location updates to both the requestor computing device and theprovider computing device for the location of the corresponding device(e.g., provider device location being sent to requestor device and viceversa).

In accordance with various embodiments, the roaming service 214 canmanage payment between the user and any entities involved. As described,the entities can be one or more service providers. Accordingly, theroaming service can include one or more appropriate components operableto manage billing, payments, taxes, and any other appropriate paymentobligations based on one or more exchange rates between the entities.

FIG. 3A illustrates an example interface 300 in accordance with variousembodiments. As described, a user may desire access to services providedby a first on-demand provider in a region where services for the firston-demand provider are not available. In this example, when theapplication is active (e.g., opened), geographic location informationassociated with the user's computing device can be utilized to determinea geographic region from which the application is being used. At leastone partner on-demand provider associated with the geographic region canbe determined. In the situation where a user account has not beenestablished between one of the available partner on-demand providers,that partner on-demand provider can be displayed on display screen ofthe user's computing service, as is shown in FIG. 3A. As shown in FIG.3A, the user has opened an application in Region X. The application canbe maintained by the first on-demand provider. The user may have anaccount with the first on-demand provider, which provides use of theapplication to access services offered by the first on-demand provider.In an embodiment, the first on-demand provider may not offer services oroffer limited services in Region X but may develop a partnership withother on-demand providers that do offer services in Region X. Theservices offered by those providers can be accessed through theapplication provided by the first on-demand provider. In this example,the first on-demand provider is partnered with a second on-demandprovider (“Partner A”) 304 and a third on-demand provider (“Partner B”)306. The user can select Partner A, Partner B, or both of them. Once anindication of a preferred partner on-demand provider is received, adetermination can be made whether terms of service have been acceptedfor the selected partner on-demand provider(s). In the situation wherethe terms of service have not been accepted, the terms of service 322can be displayed on display screen of the user's computing device, as isshown in FIG. 3B. If more than one partner on-demand provider isselected, e.g., the user selects both Partner A and Partner B, the termsof service of the selected partner on-demand providers can be displayedin turn.

Once the terms of service have been accepted, or determined to havepreviously been accepted, the application can display a requestinterface. FIG. 3C displays example request interface 302. In thisexample, services offered by Partner A and/or Partner B can be offeredthrough the application. As described, various embodiments provide forselectively integrating with various on-demand providers based onreliability factors, security concerns, user preferences, and/or othercriteria. As shown in FIG. 3C, by utilizing a flexible API framework toselectively make requests to partner on-demand providers, the firston-demand provider can enable access to services otherwise not currentlyavailable by the first on-demand provider. In this example, as shown inFIG. 3C, the user can request a carpool 342, an autonomous vehicle 344,or a large vehicle 346. It should be noted that various other servicescan be accessed utilizing the flexible API framework. This can includeselectively accessing services offered by each of the partner on-demandproviders, and/or utilizing services offered by the first on-demandprovider, among other such options. It should be further noted that eachof the partner on-demand providers may utilize the flexible APIframework to extend their service offerings to other partner on-demandproviders. For example, in various embodiments, any one of a number ofon-demand providers can expose their services to on-demand providersusing the flexible API framework. In certain embodiments, a standardizedframework can be utilized where the request for service offerings,information, etc. is universal between partner on-demand providers. Inthis way, mapping information and other such information to map arequest from one on-demand provider to another on-demand provider maynot be necessary as partner on-demand providers use common requestcalls.

FIG. 4 illustrates an example environment 400 for utilizing a flexibleAPI framework in accordance with various embodiments. In this example, auser may utilize a computing device 402 having operating thereon anapplication to access services provided by one or more on-demandproviders. The computing device can send a request and/or informationacross at least one appropriate network 404, such as may include theInternet, a local area network (LAN), a cellular network, and the like.The request and/or information can be sent to an appropriate on-demandprovider 406, as may provide one or more services, systems, orapplications for processing such requests.

In this example, the request and/or information is received to a networkinterface layer 408 of the content provider 406. The network interfacelayer can include any appropriate components known or used to receiverequests from across a network, such as may include one or moreapplication programming interfaces (APIs) or other such interfaces forreceiving such requests. The network interface layer 408 might be ownedand operated by the provider, or leveraged by the provider as part of ashared resource or “cloud” offering. The network interface layer canreceive and analyze the information, and cause at least a portion of theinformation in the request to be directed to an appropriate system orservice, such as management system 201 as illustrated in FIG. 2. Asdescribed, the management system 201 can utilize a flexible APIframework to selectively make requests to partner on-demand providers aswell as satisfy at least some of those requests.

A transport module 410 in this example includes components operable toprocess transport requests, transport responses, and othercommunications between user computing device 402 and providers 412 ofthe on-demand provider 406 to match a requestor and a provider for arequested service. For example, the transport module 410 may beconfigured to identify one of providers 412 to fulfill a transportrequest from user computing device 402 by identifying a geographicregion associated with the pick-up location and may search a providerinformation data store to identify available providers within apredetermined distance of the pick-up location and/or the geographicregion. The transport module 410 may provide the transport request to aprovider interface with the provider contact information or provideridentifier so that the transport request may be sent to one or moreavailable providers. The transport module 410 may send the transportrequest and/or the information from the transport request to one or moreof the available providers (e.g., providers 412) to determine whetherthe available providers are interested in accepting the transportrequest. The one or more available providers may receive the transportrequest through a respective provider application of a respectiveprovider computing device, may evaluate the request, and may accept ordeny the request by providing an input through a respective providerapplication. A transport response message may be sent to the transportmodule 410 indicating whether a ride was accepted and including aprovider identifier, a location of the provider, and/or any othersuitable information to allow the transport module 410 to process theresponse. Alternatively, the provider may ignore the request and after apredetermined period of time, the request may be considered denied and acorresponding ride response message may be transmitted to the transportmodule 410. In some embodiments, no response may be sent unless atransport request is accepted and the ride will be assumed to be deniedunless a response is received from the provider.

The transport module 410 may receive the transport response, evaluatewhether the provider accepted or declined the request, and may eitherfind additional available providers for the request (if declined) ordetermine the transport request has been accepted and send matched rideinformation to the requestor computing device 402 and the providercomputing device. The matched ride information may include providerinformation, requestor information, the pick-up location, the currentlocation of the provider computing device, the current location of therequestor computing device, a requestor communication identifier, aprovider communication identifier, an estimated time of arrival for theprovider, and/or any other suitable information to allow the requestorand the provider to complete the requested service. The transport module410 may update a matched rides data store with the corresponding matchedride information for the matched ride.

As described, a user may attempt to access a service provided byon-demand provider 406 that may be limited and/or not available. In thisexample, the roaming system 204 may receive a transport request or othersuch request from a requestor application of the requestor computingdevice 402 and send the transport request to one of the partneron-demand providers (414, 416.) For example, geographic locationinformation associated with the requestor computing device 402 can beprovided to management system 201. Management system 201 can use thegeographic location information to determine a geographic regionassociated with the geographic location information. The managementsystem 201 can determine at least one partner on-demand provider (414,416) associated with the geographic region. Thereafter, the requestorcomputing device 402 can request a service such as a ride, monitor thestatus of a matched ride, pay for a ride, monitor past rides, performany other requestor-oriented services related to the management system201, and/or obtain any other requestor-oriented information from themanagement system 201 and/or partner on-demand providers.

For example, partner on-demand providers (414, 416) may each beassociated with a plurality of providers (e.g., 422 and 424,respectively). Management system 201 can be configured to utilize aflexible API framework to selectively submit requests to partneron-demand providers based on a set of rules. For example, a request canbe received from requestor computing device 402. Management system 201can analyze the request and send one or more requests to an appropriateAPI (418,420) of a partner on-demand provider to request informationsuch as partner services, availability of partner providers, among othersuch information. Based on the set of rules, some aspects of a requestmay be fulfilled by the partner on-demand providers (414, 416) and otheraspects of the request may be fulfilled by on-demand provider 406. Forexample, while a transport request, location pick-up, drop-off, route,and pricing may be received and fulfilled by a partner on-demandprovider (414, 416), management system 201 might fulfill billingobligations, estimated time of arrival calculations, among other suchdeterminations. In another example, a third party provider may utilizethe flexible API framework to receive requests from a plurality ofrequestor devices. Third party providers can include, for example, fooddelivery providers and other delivery providers, beauty serviceproviders (e.g., hair, nails, skin), wellness providers (e.g., yoga,massage, fitness, etc.), among other such providers. Additionally oralternatively, the management system may partner with the third partyproviders to facilitate access to such services via their application.

FIG. 5 illustrates an example process 500 for utilizing a flexible APIframework to selectively integrate with various on-demand providersbased on reliability factors, security concerns, user preferences,and/or other criteria in accordance with various embodiments. It shouldbe understood that there can be additional, fewer, or alternative stepsperformed in similar or alternative orders, or in parallel, within thescope of the various embodiments unless otherwise stated. As described,a user may attempt to access a service provided by an on-demand providerthat may be limited and/or not available for a particular location. Inthis example, an active state of an application used to access on-demandservices provided by an on-demand provider is determined 502. When it isdetermined that the application is active, geographic locationinformation associated with the user's computing device can bedetermined and the geographic location information can be used todetermine 504 a geographic region. A determination 506 can be madewhether the on-demand provider provides service in the geographicregion. In the situation where the on-demand provider does not provideservice in the geographic region, a request submitted through theapplication can be fulfilled by a partner on-demand provider. This caninclude, for example, identifying 508 at least one partner on-demandprovider associated with the geographic region. The user can be providedwith a list of available partner on-demand providers, where each of thepartner on-demand providers can be associated with one or more API's forwhich in interact with. The user may select one or more of the partneron-demand providers to engage with. In certain embodiments, themanagement system may select a partner on-demand provider based onselection criteria such as user preference, location, and status ofservice providers associated with the partner on-demand provider near arequest location. In various embodiments, the management system maymonitor system resources and control efficient resource allocation basedon demand-matching between requestors and partner on-demand providersdistributed through a geographic area. A request can be mapped 510 to atleast one of the one or more APIs associated with the selected partneron-demand provider based on a set of rules, criteria, security concerns,user account preferences or other such information to obtain 512transport provider information associated with the partner on-demandprovider. For example, user account preferences may indicate that a userprefers one partner service provider over another. In this situation,the preferred partner service provider or at least aspects of theservice provided by the preferred service provider may be utilized. Inanother example, security concerns and/or detected fraudulent activityassociated with aspects of a partner service provider may cause a subsetof the services available via API requests to be utilized while otherservices available via API requests through other partner serviceproviders may be utilized. For example, a partner service provider maydetermine transport distance information that does not meet a thresholdlevel of confidence. The distance information may be used for billingspurposes. As such, because the distance determination is questionable, apartner service provider that at least satisfies a threshold level ofconfidence may be selected to fulfill the request or aspects of therequest. The transport service provider information can be used 514 tocause an interface to display transport riding information associatedwith the partner on-demand provider. For example, the transport ridinginformation can include sufficient data to determine partner services,availability of partner providers, among other such information.Thereafter, a request can be submitted to the partner on-demand servicerequesting a service such as a ride, monitor the status of a matchedride, pay for a ride, monitor past rides, perform any otherrequestor-oriented services related to the on-demand provider, and/orobtain any other requestor-oriented information from the on-demandprovider and/or partner on-demand provider.

In the situation where the on-demand provider does provide services inthe region, services can be provided by the on-demand provider, partneron-demand providers, or a combination thereof. For example, FIG. 6illustrates an example process 600 for the situation where the on-demandservice provider does provide services in the region. In this example, amanagement system can be configured to utilize a flexible API frameworkto selectively submit requests to partner on-demand providers. Forexample, an interface can be displayed 602 that includes servicesoffered by multiple on-demand provides, such as one of partner on-demandproviders, the on-demand provider, or one or more third parties. Arequest can be received 604 for a service displayed on the interface. Aflexible API framework can be used 606 to submit aspects of the requestto at least one partner on-demand provider and other aspects of therequest can be fulfilled by a management system associated with theon-demand provider. For example, while a transport request, locationpick-up, drop-off, route, and pricing may be received and fulfilled by apartner on-demand provider, the management system might fulfill billingobligations, estimated time of arrival calculations, among other suchdeterminations. Thereafter, feedback of the request can be provided 606to the requestor application. This can include, for example, travelroutes, pick-up estimates, drop-off estimates, traffic information,and/or any other relevant information.

FIG. 7 shows a requestor/provider management environment 700, inaccordance with various embodiments. As shown in FIG. 7, a managementsystem 702 can be configured to provide various services to requestorand provider devices. Management system 702 can run one or more servicesor software applications, including identity management services 704,location services 706, ride services 708, or other services. Althoughthree services are shown as being provided by management system 702,more or fewer services may be provided in various implementations. Invarious embodiments, management system 702 may include one or moregeneral purpose computers, server computers, clustered computingsystems, cloud-based computing systems, or any other computing systemsor arrangements of computing systems. Management system 702 may beconfigured to run any or all of the services and/or softwareapplications described with respect to various embodiments of thepresent techniques described herein. In some embodiments, managementsystem 702 can run any appropriate operating system as well as variousserver applications, such as common gateway interface (CGI) servers,JAVA® servers, hypertext transport protocol (HTTP) servers, filetransfer protocol (FTP) servers, database servers, etc.

Identity management services 704 may include various identity services,such as access management and authorization services for requestors andproviders when interacting with management system 702. This may include,e.g., authenticating the identity of providers and determining that theproviders are authorized to provide services through management system702. Similarly, requestors' identities may be authenticated to determinewhether the requestor is authorized to receive the requested servicesthrough management system 702. Identity management services 704 may alsocontrol access to provider and requestor data maintained by managementsystem 702, such as driving and/or ride histories, personal data, orother user data. Location services 706 may include navigation and/ortraffic management services and user interfaces, or other locationservices.

In various embodiments, ride services 708 may include ride matching andmanagement services to connect a requestor to a provider. Ride services708 may include a user interface and or may receive data from requestorsand providers through applications executing on their respectivedevices. Ride services 708 may, e.g., confirm the identity of requestorsand providers using identity management services 704, and determine thateach user is authorized for the requested ride service. In someembodiments, ride services 708 can identify an appropriate providerusing a location obtained from a requestor and location services 706 toidentify, e.g., a closest provider. As such, ride services 708 canmanage the distribution and allocation of provider and requestorresources, consistent with embodiments described herein.

Management system 702 can connect to various devices through network 710and 712. Networks 710, 712 can include any network configured to sendand/or receive data communications using various communicationprotocols, such as AppleTalk, transmission control protocol/Internetprotocol (TCP/IP), Internet packet exchange (IPX), systems networkarchitecture (SNA), etc. In some embodiments, networks 710, 712 caninclude local area networks (LAN), such as Ethernet, Token-Ring or otherLANs. Networks 710, 712 can include a wide-area network and/or theInternet. In some embodiments, networks 710, 712 can include VPNs(virtual private networks), PSTNs (a public switched telephonenetworks), infra-red networks, or any wireless network, includingnetworks implementing the IEEE 802.11 family of standards, Bluetooth®,Bluetooth® Low Energy, NFC and/or any other wireless protocol. Invarious embodiments, networks 710, 712 can include a mobile network,such as a mobile telephone network, cellular network, satellite network,or other mobile network. Networks 710, 712 may be the same ascommunication network 170 in FIG. 1. In some embodiments, networks 710,712 may each include a combination of networks described herein or othernetworks as are known to one of ordinary skill in the art.

Users may then utilize one or more services provided by managementsystem 702 using applications executing on provider and requestordevices. As shown in FIG. 7, provider computing devices 714, 716, 718,and/or 720 may include mobile devices (e.g., an iPhone®, an iPad®,mobile telephone, tablet computer, a personal digital assistant (PDA)),wearable devices (e.g., head mounted displays, etc.), thin clientdevices, gaming consoles, or other devices configured to communicateover one or more networks 710, 712. Each provider or requestor devicecan execute various operating systems (e.g., Android, iOS, etc.) andconfigured to communicate over the Internet, Blackberry® messenger,short message service (SMS), email, and various other messagingapplications and/or communication protocols. The requestor and providercomputing devices can include general purpose computers (e.g., personalcomputers, laptop computers, or other computing devices executingoperating systems such as macOS®, Windows®, Linux®, various UNIX® orUNIX- or Linux-based operating systems, or other operating systems). Insome embodiments, provider computing device 714 can include avehicle-integrated computing device, such as a vehicle navigationsystem, or other computing device integrated with the vehicle itself.

In some embodiments, provider computing device 718 can include aprovider communication device configured to communicate with users, suchas drivers, passengers, pedestrians, and other users. In someembodiments, provider communication device 718 can communicate directlywith management system 702 or through another provider computing device,such as provider computing device 716. In some embodiments, a requestorcomputing device can communicate 726 directly with providercommunication device 718 over a peer-to-peer connection, Bluetoothconnection, NFC connection, ad hoc wireless network, or any othercommunication channel or connection. Although particular devices areshown as communicating with management system 702 over networks 710 and712, in various embodiments, management system 702 can expose aninterface, such as an application programming interface (API) or serviceprovider interface (SPI) to enable various third parties which may serveas an intermediary between end users and management system 702.

Although requestor/provider management environment 700 is shown withfour provider devices and two requestor devices, any number of devicesmay be supported. The various components shown and described herein maybe implemented in hardware, firmware, software, or combinations thereof.Although one embodiment of a requestor/provider management environmentis depicted in FIG. 7, this is merely one implementation and not meantto be limiting.

FIG. 8 shows a data collection and application management environment800, in accordance with various embodiments. As shown in FIG. 8,management system 802 may be configured to collect data from variousdata collection devices 804 through a data collection interface 806. Asdiscussed above, management system 802 may include one or more computersand/or servers or any combination thereof. Data collection devices 804may include, but are not limited to, user devices (including providerand requestor computing devices, such as those discussed above),provider communication devices, laptop or desktop computers, vehicledata (e.g., from sensors integrated into or otherwise connected tovehicles), ground-based or satellite-based sources (e.g., location data,traffic data, weather data, etc.), or other sensor data (e.g., roadwayembedded sensors, traffic sensors, etc.). Data collection interface 806can include, e.g., an extensible device framework configured to supportinterfaces for each data collection device. In various embodiments, datacollection interface 806 can be extended to support new data collectiondevices as they are released and/or to update existing interfaces tosupport changes to existing data collection devices. In variousembodiments, data collection devices may communicate with datacollection interface 806 over one or more networks. The networks mayinclude any network or communication protocol as would be recognized byone of ordinary skill in the art, including those networks discussedabove.

As shown in FIG. 8, data received from data collection devices 804 canbe stored in data store 808. Data store 808 can include one or more datastores, such as databases, object storage systems and services,cloud-based storage services, and other data stores. For example,various data stores may be implemented on a non-transitory storagemedium accessible to management system 802, such as historical datastore 810, ride data store 812, and user data store 814. Data stores 808can be local to management system 802, or remote and accessible over anetwork, such as those networks discussed above or a storage-areanetwork or other networked storage system. In various embodiments,historical data 810 may include historical traffic data, weather data,request data, road condition data, or any other data for a given regionor regions received from various data collection devices. Ride data 812may include route data, request data, timing data, and other riderelated data, in aggregate and/or by requestor or provider. User data814 may include user account data, preferences, location history, andother user-specific data. Although particular data stores are shown, anydata collected and/or stored according to the various embodimentsdescribed herein may be stored in data stores 808.

As shown in FIG. 8, an application interface 816 can be provided bymanagement system 802 to enable various apps 818 to access data and/orservices available through management system 802. Apps 818 can run onvarious user devices (including provider and requestor computingdevices, such as those discussed above) and/or may include cloud-basedor other distributed apps configured to run across various devices(e.g., computers, servers, or combinations thereof). Apps 818 mayinclude, e.g., aggregation and/or reporting apps which may utilize data808 to provide various services (e.g., third-party transport request andmanagement apps). In various embodiments, application interface 816 caninclude an API and/or SPI enabling third party development of apps 818.In some embodiments, application interface 816 may include a webinterface, enabling web-based access to data 808 and/or servicesprovided by management system 802. In various embodiments, apps 818 mayrun on devices configured to communicate with application interface 816over one or more networks. The networks may include any network orcommunication protocol as would be recognized by one of ordinary skillin the art, including those networks discussed above, in accordance withan embodiment of the present disclosure.

Although a particular implementation of environment 800 is shown in FIG.8, this is for illustration purposes only and not intended to belimited. In some embodiments, environment 800 may include fewer or morecomponents, as would be recognized by one or ordinary skill in the art.

FIG. 9 shows an example computer system 900, in accordance with variousembodiments. In various embodiments, computer system 900 may be used toimplement any of the systems, devices, or methods described herein. Insome embodiments, computer system 900 may correspond to any of thevarious devices described herein, including, but not limited, to mobiledevices, tablet computing devices, wearable devices, personal or laptopcomputers, vehicle-based computing devices, or other devices or systemsdescribed herein. As shown in FIG. 9, computer system 900 can includevarious subsystems connected by a bus 902. The subsystems may include anI/O device subsystem 904, a display device subsystem 906, and a storagesubsystem 910 including one or more computer readable storage media 908.The subsystems may also include a memory subsystem 912, a communicationsubsystem 920, and a processing subsystem 922.

In system 900, bus 902 facilitates communication between the varioussubsystems. Although a single bus 902 is shown, alternative busconfigurations may also be used. Bus 902 may include any bus or othercomponent to facilitate such communication as is known to one ofordinary skill in the art. Examples of such bus systems may include alocal bus, parallel bus, serial bus, bus network, and/or multiple bussystems coordinated by a bus controller. Bus 902 may include one or morebuses implementing various standards such as Parallel ATA, serial ATA,Industry Standard Architecture (ISA) bus, Extended ISA (EISA) bus,MicroChannel Architecture (MCA) bus, Peripheral Component Interconnect(PCI) bus, or any other architecture or standard as is known in the art.

In some embodiments, I/O device subsystem 904 may include various inputand/or output devices or interfaces for communicating with such devices.Such devices may include, without limitation, a touch screen or othertouch-sensitive input device, a keyboard, a mouse, a trackball, a motionsensor or other movement-based gesture recognition device, a scrollwheel, a click wheel, a dial, a button, a switch, audio recognitiondevices configured to receive voice commands, microphones, image capturebased devices such as eye activity monitors configured to recognizecommands based on eye movement or blinking, and other types of inputdevices. I/O device subsystem 904 may also include identification orauthentication devices, such as fingerprint scanners, voiceprintscanners, iris scanners, or other biometric sensors or detectors. Invarious embodiments, I/O device subsystem may include audio outputdevices, such as speakers, media players, or other output devices.

Computer system 900 may include a display device subsystem 906. Displaydevice subsystem may include one or more lights, such as an one or morelight emitting diodes (LEDs), LED arrays, a liquid crystal display (LCD)or plasma display or other flat-screen display, a touch screen, ahead-mounted display or other wearable display device, a projectiondevice, a cathode ray tube (CRT), and any other display technologyconfigured to visually convey information. In various embodiments,display device subsystem 906 may include a controller and/or interfacefor controlling and/or communicating with an external display, such asany of the above-mentioned display technologies.

As shown in FIG. 9, system 900 may include storage subsystem 910including various computer readable storage media 908, such as hard diskdrives, solid state drives (including RAM-based and/or flash-basedSSDs), or other storage devices. In various embodiments, computerreadable storage media 908 can be configured to store software,including programs, code, or other instructions, that is executable by aprocessor to provide functionality described herein. In someembodiments, storage system 910 may include various data stores orrepositories or interface with various data stores or repositories thatstore data used with embodiments described herein. Such data stores mayinclude, databases, object storage systems and services, data lakes orother data warehouse services or systems, distributed data stores,cloud-based storage systems and services, file systems, and any otherdata storage system or service. In some embodiments, storage system 910can include a media reader, card reader, or other storage interface tocommunicate with one or more external and/or removable storage devices.In various embodiments, computer readable storage media 908 can includeany appropriate storage medium or combination of storage media. Forexample, computer readable storage media 908 can include, but is notlimited to, any one or more of random access memory (RAM), read onlymemory (ROM), electronically erasable programmable ROM (EEPROM), flashmemory or other memory technology, optical storage (e.g., CD-ROM,digital versatile disk (DVD), Blu-ray® disk or other optical storagedevice), magnetic storage (e.g., tape drives, cassettes, magnetic diskstorage or other magnetic storage devices). In some embodiments,computer readable storage media can include data signals or any othermedium through which data can be transmitted and/or received.

Memory subsystem 912 can include various types of memory, including RAM,ROM, flash memory, or other memory. Memory 912 can include SRAM (staticRAM) or DRAM (dynamic RAM). In some embodiments, memory 912 can includea BIOS (basic input/output system) or other firmware configured tomanage initialization of various components during, e.g., startup. Asshown in FIG. 9, memory 912 can include applications 914 and applicationdata 916. Applications 914 may include programs, code, or otherinstructions, that can be executed by a processor. Applications 914 caninclude various applications such as browser clients, locationmanagement applications, ride management applications, data managementapplications, and any other application. Application data 916 caninclude any data produced and/or consumed by applications 914. Memory912 can additionally include operating system 918, such as macOS®,Windows®, Linux®, various UNIX® or UNIX- or Linux-based operatingsystems, or other operating systems.

System 900 can also include a communication subsystem 920 configured tofacilitate communication between system 900 and various externalcomputer systems and/or networks (such as the Internet, a local areanetwork (LAN), a wide area network (WAN), a mobile network, or any othernetwork). Communication subsystem 920 can include hardware and/orsoftware to enable communication over various wired (such as Ethernet orother wired communication technology) or wireless communicationchannels, such as radio transceivers to facilitate communication overwireless networks, mobile or cellular voice and/or data networks, WiFinetworks, or other wireless communication networks. For example, thecommunication network is shown as communication network 90 in FIG. 1.Additionally, or alternatively, communication subsystem 920 can includehardware and/or software components to communicate with satellite-basedor ground-based location services, such as GPS (global positioningsystem). In some embodiments, communication subsystem 920 may include,or interface with, various hardware or software sensors. The sensors maybe configured to provide continuous or and/or periodic data or datastreams to a computer system through communication subsystem 920

As shown in FIG. 9, processing system 922 can include one or moreprocessors or other devices operable to control computing system 900.Such processors can include single core processors 924, multi coreprocessors, which can include central processing units (CPUs), graphicalprocessing units (GPUs), application specific integrated circuits(ASICs), digital signal processors (DSPs) or any other generalized orspecialized microprocessor or integrated circuit. Various processorswithin processing system 922, such as processors 924 and 926, may beused independently or in combination depending on application.

Various other configurations are may also be used, with particularelements that are depicted as being implemented in hardware may insteadbe implemented in software, firmware, or a combination thereof. One ofordinary skill in the art will recognize various alternatives to thespecific embodiments described herein.

The specification and figures describe particular embodiments which areprovided for ease of description and illustration and are not intendedto be restrictive. Embodiments may be implemented to be used in variousenvironments without departing from the spirit and scope of thedisclosure.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing the disclosed embodiments (especially in thecontext of the following claims) are to be construed to cover both thesingular and the plural, unless otherwise indicated herein or clearlycontradicted by context. The terms “comprising,” “having,” “including,”and “containing” are to be construed as open-ended terms (i.e., meaning“including, but not limited to,”) unless otherwise noted. The term“connected” is to be construed as partly or wholly contained within,attached to, or joined together, even if there is something intervening.Recitation of ranges of values herein are merely intended to serve as ashorthand method of referring individually to each separate valuefalling within the range, unless otherwise indicated herein and eachseparate value is incorporated into the specification as if it wereindividually recited herein. All methods described herein can beperformed in any suitable order unless otherwise indicated herein orotherwise clearly contradicted by context. The use of any and allexamples, or exemplary language (e.g., “such as”) provided herein, isintended merely to better illuminate embodiments of the disclosure anddoes not pose a limitation on the scope of the disclosure unlessotherwise claimed. No language in the specification should be construedas indicating any non-claimed element as essential to the practice ofthe disclosure.

Disjunctive language such as the phrase “at least one of X, Y, or Z,”unless specifically stated otherwise, is intended to be understoodwithin the context as used in general to present that an item, term,etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y,and/or Z). Thus, such disjunctive language is not generally intended to,and should not, imply that certain embodiments require at least one ofX, at least one of Y, or at least one of Z to each be present.

Preferred embodiments of this disclosure are described herein, includingthe best mode known to the inventors for carrying out the disclosure.Variations of those preferred embodiments may become apparent to thoseof ordinary skill in the art upon reading the foregoing description. Theinventors expect skilled artisans to employ such variations asappropriate and the inventors intend for the disclosure to be practicedotherwise than as specifically described herein. Accordingly, thisdisclosure includes all modifications and equivalents of the subjectmatter recited in the claims appended hereto as permitted by applicablelaw. Moreover, any combination of the above-described elements in allpossible variations thereof is encompassed by the disclosure unlessotherwise indicated herein or otherwise clearly contradicted by context.

All references, including publications, patent applications, andpatents, cited herein are hereby incorporated by reference to the sameextent as if each reference were individually and specifically indicatedto be incorporated by reference and were set forth in its entiretyherein.

What is claimed is:
 1. A computer-implemented method, comprising:identifying a geographic region associated with a requestor computingdevice, the requestor computing device having operating thereon anapplication operable to submit transport service requests, wherein theapplication is maintained by a first transport service providerassociated with a first set of transportation providers; determining,based on the geographic region, a second transport service providerassociated with a second set of transportation providers, the secondtransport service provider associated with one or more applicationprogram interfaces (APIs) for which to interact with the secondtransport service provider; digitally communicating, through at leastone API of the one or more APIs, a transport service request to anapplication of the second transport service provider to request atransportation provider; receiving from the application of the secondtransport service provider, through the at least one API of the one ormore APIs, a location of a selected transportation provider, from thesecond set of transportation providers, dispatched to fulfill thetransport service request; and providing, for display on a graphicaluser interface of the application of the first transport serviceprovider on the requestor computing device, the location of the selectedtransportation provider dispatched to fulfill the transport servicerequest.
 2. The computer-implemented method of claim 1, furthercomprising: providing for display one or more transport serviceproviders associated with the geographic region; and receivinginformation indicating a selection of the second transport serviceprovider.
 3. The computer-implemented method of claim 1, furthercomprising identifying the geographic region associated with therequestor computing device based on a global positioning system (GPS)communication from the requestor computing device.
 4. Thecomputer-implemented method of claim 1, further comprising: providing,for display on the graphical user interface of the application of thefirst transport service provider on the requestor computing device, anonboarding page associated with the second transport service provider,the onboarding page including a terms of service associated with thesecond transport service provider.
 5. The computer-implemented method ofclaim 1, further comprising determining the second transport serviceprovider upon identifying that the first set of transportation providersare unavailable within the geographic region.
 6. Thecomputer-implemented method of claim 1, further comprising: utilizingthe at least one API to receive, from the application of the secondtransport service provider, service types available via the secondtransport service provider; and wherein the selected transportationprovider dispatched to fulfill the transport service request is based ona selection of a service type from the service types available via thesecond transport service provider.
 7. The computer-implemented method ofclaim 1, wherein the at least one API of the one or more APIs is basedon a set of rules, wherein the set of rules is based at least in part onuser preferences in a user profile associated with the first transportservice provider or reliability criteria associated with the secondtransport service provider.
 8. The computer-implemented method of claim1, further comprising: utilizing the at least one API to receive, fromthe application of the second transport service provider, a routecorresponding to the transport service request and location updates ofthe selected transportation provider; and causing a map-based graphicaluser interface of the application of the first transport serviceprovider on the requestor computing device to display the routecorresponding to the transport service request and location updates ofthe selected transportation provider.
 9. The computer-implemented methodof claim 1, further comprising: utilizing the at least one API toreceive, from the application of the second transport service provider,price information corresponding to the transport service request; andreceiving payment for the transport service request within theapplication of the first transport service provider on the requestorcomputing device.
 10. A non-transitory computer-readable medium storinginstructions that, when executed by at least one processor, cause acomputer system to: identify a geographic region associated with arequestor computing device, the requestor computing device havingoperating thereon an application operable to submit transport servicerequests, wherein the application is maintained by a first transportservice provider associated with a first set of transportationproviders; determine, based on the geographic region, a second transportservice provider associated with a second set of transportationproviders, the second transport service provider associated with one ormore application program interfaces (APIs) for which to interact withthe second transport service provider; digitally communicate, through atleast one API of the one or more APIs, a transport service request to anapplication of the second transport service provider to request atransportation provider; receive from the application of the secondtransport service provider, through the at least one API of the one ormore APIs, a location of a selected transportation provider, from thesecond set of transportation providers, dispatched to fulfill thetransport service request; and provide, for display on a graphical userinterface of the application of the first transport service provider onthe requestor computing device, the location of the selectedtransportation provider dispatched to fulfill the transport servicerequest.
 11. The non-transitory computer-readable medium of claim 10,further comprising instructions that, when executed by the at least oneprocessor, cause the computer system to: provide for display one or moretransport service providers associated with the geographic region; andreceive information indicating a selection of the second transportservice provider.
 12. The non-transitory computer-readable medium ofclaim 10, wherein determining the second transport service provider isfurther based at least in part on user preference information associatedwith a user account of the first transport service provider.
 13. Thenon-transitory computer-readable medium of claim 10, further comprisinginstructions that, when executed by the at least one processor, causethe computer system to provide, for display on the graphical userinterface of the application of the first transport service provider onthe requestor computing device, an onboarding page associated with thesecond transport service provider, the onboarding page including a termsof service associated with the second transport service provider. 14.The non-transitory computer-readable medium of claim 13, furthercomprising instructions that, when executed by the at least oneprocessor, cause the computer system to: receive, from the requestorcomputing device, an indication of an acceptance of the terms ofservice; and request, through the at least one API of the one or moreAPIs, an account creation with the second transport service provider.15. The non-transitory computer-readable medium of claim 10, furthercomprising instructions that, when executed by the at least oneprocessor, cause the computer system to: utilize the at least one API toreceive, from the application of the second transport service provider,service types available via the second transport service provider; andwherein the selected transportation provider dispatched to fulfill thetransport service request is based on a selection of a service type fromthe service types available via the second transport service provider.16. A system comprising: at least one processor; and at least onenon-transitory computer-readable storage medium storing instructionsthat, when executed by the at least one processor, cause the system to:identify a geographic region associated with a requestor computingdevice, the requestor computing device having operating thereon anapplication operable to submit transport service requests, wherein theapplication is maintained by a first transport service providerassociated with a first set of transportation providers; determine,based on the geographic region, a second transport service providerassociated with a second set of transportation providers, the secondtransport service provider associated with one or more applicationprogram interfaces (APIs) for which to interact with the secondtransport service provider; digitally communicate, through at least oneAPI of the one or more APIs, a transport service request to anapplication of the second transport service provider to request atransportation provider; receive from the application of the secondtransport service provider, through the at least one API of the one ormore APIs, a location of a selected transportation provider, from thesecond set of transportation providers, dispatched to fulfill thetransport service request; and provide, for display on a graphical userinterface of the application of the first transport service provider onthe requestor computing device, the location of the selectedtransportation provider dispatched to fulfill the transport servicerequest.
 17. The system of claim 16, further comprising instructionsthat, when executed by the at least one processor, cause the system to:provide for display one or more transport service providers associatedwith the geographic region; and receive information indicating aselection of the second transport service provider.
 18. The system ofclaim 16, wherein determining the second transport service provider isfurther based at least in part on user preference information associatedwith a user account of the first transport service provider.
 19. Thesystem of claim 16, wherein the at least one API of the one or more APIsis based on a set of rules, wherein the set of rules is based at leastin part on user preferences in a user profile associated with the firsttransport service provider or reliability criteria associated with thesecond transport service provider.
 20. The system of claim 16, furthercomprising instructions that, when executed by the at least oneprocessor, cause the system to: utilize the at least one API to receive,from the application of the second transport service provider, servicetypes available via the second transport service provider; and whereinthe selected transportation provider dispatched to fulfill the transportservice request is based on a selection of a service type from theservice types available via the second transport service provider.